home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / SERVICES.PAK / REF.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  1KB  |  48 lines

  1. //----------------------------------------------------------------------------
  2. // Borland Services Library
  3. // Copyright (c) 1993, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   5.5  $
  6. //
  7. // Implementation of class TReference -- base class for reference counting
  8. //
  9. //----------------------------------------------------------------------------
  10. #if !defined(CLASSLIB_REF_H)
  11. #define CLASSLIB_REF_H
  12.  
  13. #if !defined(CLASSLIB_DEFS_H)
  14. # include <classlib/defs.h>
  15. #endif
  16.  
  17. #if defined(BI_COMP_BORLANDC)
  18. # include <ref.h>
  19.  
  20. #else
  21.  
  22. #if defined(BI_NAMESPACE)
  23. namespace ClassLib {
  24. #endif
  25.  
  26. class _EXPCLASS TReference {
  27.   public:
  28.     _RTLENTRY TReference(unsigned short initRef = 0) : Refs(initRef) { }
  29.     void _RTLENTRY AddReference() { Refs++; }
  30.     unsigned short _RTLENTRY References() { return Refs; }
  31.     unsigned short _RTLENTRY RemoveReference() { return --Refs; }
  32.  
  33.   private:
  34.     unsigned short Refs;    // Number of references to this block
  35. };
  36.  
  37. #if defined(BI_NAMESPACE)
  38. }     // namespace ClassLib
  39. #endif
  40.  
  41. #endif  // else if BI_COMP_BORLANDC
  42.  
  43. #if defined(BI_OLDNAMES)
  44. # define BI_Reference TReference
  45. #endif
  46.  
  47. #endif  // CLASSLIB_REF_H
  48.